package org.hard.model.structure.composite;

import java.util.ArrayList;
import java.util.List;

/**
 * @author: 王林博
 * @date: 2023年02月22日 17:34
 */
// 客户端代码会通过基础接口与所有组件进行交互。这样一来，客户端代码便可同时支持简单叶节点组件和复杂组件。
public class ImageEditor {

    List<Graphic> graphics;


    public static void main(String[] args) {
        ImageEditor editor = new ImageEditor();
        editor.graphics = new ArrayList<>();
        editor.load();
        editor.groupSelected(editor.graphics);
    }

    void load() {

        graphics.add(new Dot(1, 2));
        graphics.add(new Circle(5, 3, 10));
    }

    void groupSelected(List<Graphic> list) {
        List<Graphic> listNew = new ArrayList<>();
        for (Graphic item : list) {
            listNew.add(item);
            graphics.remove(item);

        }
        graphics.addAll(listNew);
        graphics.forEach(item ->{
            item.draw();
        });
    }
}
